package com.cskaoyan.javase.oop1._3compare;

/**
 * @description: 比较局部变量和成员变量
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * > 局部变量和成员变量的比较，我们从以下五个方面去比较：
 * - 在类中定义的位置不同
 * 成员变量： 类体中，方法外的成员位置
 * 局部变量： 方法内等局部位置
 *
 * - 在内存中的位置不同
 * 成员变量：在堆上的对象中
 * 局部变量：在方法的栈帧中
 *
 * - 生命周期不同
 * 成员变量：和对象“同生共死”实际上只要对象不被引用指向，该对象中的成员也会失去意义
 * 局部变量：随着方法执行初始化，方法结束就被销毁了
 *
 * - 初始化值不同
 * 成员变量：有默认值
 * 局部变量：没有，必须初始化才能使用
 *
 * - 作用范围
 * 成员变量：在整个类的成员方法中都是可以访问的，但是加了static的方法不能直接访问成员变量
 * 局部变量：只在大括号内部生效
 *
 *
 *
 */
public class Demo {
}
class Star{
    int age;
    public void test(){
        System.out.println(age);
    }
    public static void test2(){
        //System.out.println(age);
    }
}
